erddap_url: https://erddap.marine.usf.edu/erddap/griddap/IMERG_monthly_global_precip.htmlerddap_variable: precipitation# [iterate_ed_extract]# 001: CBNMS, 1998-01-01 to 1998-12-01# ERROR: [raster,matrix(xyz)] x cell sizes are not regular
2.2 Information
Code
meta <-read_yaml(params$yml) proc_prod <-path_ext_remove(basename(params$yml))dir_out <-glue("/share/data/noaa-onms/climate-dashboard-app/{proc_prod}")dir_create(dir_out)v <- meta$erddap_variable(ed <-ed_info(meta$erddap_url))
<ERDDAP info> IMERG_monthly_global_precip
Base URL: https://erddap.marine.usf.edu/erddap
Dataset Type: griddap
Dimensions (range):
time: (1998-01-01T00:00:00Z, 2025-07-01T00:00:00Z)
latitude: (-89.95, 89.95)
longitude: (-179.95, 179.95)
Variables:
precipitation:
Units: mm
precipitationQualityIndex:
Units: none
randomError:
Units: mm
Code
times <-ed_dim(ed, "time")
3 Polygon years
Code
d_nms_yr_todo <- ply_sanctuaries |>st_drop_geometry() |>arrange(nms) |>select(nms) |>cross_join(tibble(year =year(min(times)):year(max(times)))) |>mutate(d =map2(nms, year, \(nms, year) { # nms = "CBNMS"; year = 2025 times_yr <- times[year(times) == year] tif <-glue("{dir_out}/{nms}/{year}.tif")# if missing tif,return all timesif (!file.exists(tif))return(list(time_min =min(times_yr),time_max =max(times_yr),n_times =length(times_yr)))# get times from tif r <-rast(tif) times_tif <-time(r)# if all times done, return NAsif (all(times_yr %in% times_tif))return(list(n_times =0,time_min =NA,time_max=NA)) # otherwise, return time range missing i <-!times_yr %in% times_tiflist(n_times =sum(i),time_min =min(times_yr[i]),time_max =max(times_yr[i])) }),time_min =map_vec(d, pluck, "time_min"),time_max =map_vec(d, pluck, "time_max"),n_times =map_int(d, pluck, "n_times") ) |>select(-d) |>filter(n_times >0) |>rowid_to_column("i") |>relocate(i)d_nms_yr_todo |>group_by(nms) %>% {if (nrow(.) >0)summarize( .,time_min =min(time_min, na.rm = T),time_max =max(time_max, na.rm = T),n_times =sum(n_times)) else .} |>datatable(caption ="Sanctuaries missing available ERDDAP times.",rownames = F,options =list(pageLength =5,lengthMenu =c(5, 50, nrow(d_nms_yr_todo))))